import type { OptionItem } from "@/pages/internship/position/apis/type"
import type { Award, InternExperience, Language, Skill } from "@/pages/internship/resume/apis/type"

/**
 * 老师端申请详情
 */
export interface ApplicationDetailForTeacher {
  /**
   * 用户ID
   */
  userId: number
  /**
   * 真实姓名
   */
  realName: string
  /**
   * 政治面貌
   */
  politicalStatus: string
  /**
   * 性别（0-男，1-女）
   */
  gender: number
  /**
   * 组织名称
   */
  orgName: string
  /**
   * 组织路径
   */
  orgPath: string
  /**
   * 电话
   */
  phone: string
  /**
   * 邮箱
   */
  email: string
  /**
   * 简历ID
   */
  resumeId: number
  /**
   * 技能列表
   */
  skills: Skill[]
  /**
   * 实习经历列表
   */
  internExperiences: InternExperience[]
  /**
   * 语言能力列表
   */
  languages: Language[]
  /**
   * 获奖信息列表
   */
  awards: Award[]
  /**
   * 其他信息
   */
  otherInfo: string
  /**
   * 申请ID
   */
  applicationId: number
  /**
   * 审核老师ID
   */
  reviewTeacherId: number | null
  /**
   * 审核时间
   */
  reviewTime: string | null
  /**
   * 审核备注
   */
  reviewRemark: string | null
  /**
   * 提交时间
   */
  submitTime: string
  /**
   * 简历URL
   */
  resumeUrl: string
  /**
   * 申请状态
   */
  applicationStatus: number
  /**
   * 申请状态名称
   */
  applicationStatusName: string
}

/**
 * 老师端职位申请分页查询参数
 */
export interface ApplicationTeacherPageQuery {
  /**
   * 职位ID
   */
  positionId?: number

  /**
   * 申请状态（可选，不传则查询所有状态）
   */
  applicationStatus?: number

  /**
   * 学生姓名（可选，用于搜索）
   */
  studentName?: string

  /**
   * 当前页码
   */
  page: number

  /**
   * 每页大小
   */
  size: number
}

/**
 * 老师端职位申请列表项
 */
export interface ApplicationItemForTeacher {
  /**
   * 申请ID
   */
  applicationId: number

  /**
   * 用户ID
   */
  userId: number

  /**
   * 简历ID
   */
  resumeId: number

  /**
   * 简历URL
   */
  resumeUrl: string

  /**
   * 学生真实姓名
   */
  realName: string

  /**
   * 学生姓名（登录用户名）
   */
  studentName: string

  /**
   * 学号
   */
  studentNumber: string

  /**
   * 班级名称
   */
  className: string

  /**
   * 学校/组织路径
   */
  orgPath: string

  /**
   * 政治面貌
   */
  politicalStatus: string

  /**
   * 提交时间
   */
  submitTime: string

  /**
   * 申请状态
   */
  applicationStatus: number

  /**
   * 申请状态名称
   */
  applicationStatusName: string

  /**
   * 申请时间
   */
  applicationTime: string
}

/**
 * 老师端职位申请分页响应
 */
export interface ApplicationPageForTeacher {
  /**
   * 申请记录列表
   */
  records: ApplicationItemForTeacher[]

  /**
   * 总记录数
   */
  total: number

  /**
   * 每页大小
   */
  size: number

  /**
   * 当前页码
   */
  current: number

  /**
   * 总页数
   */
  pages: number
}

/**
 * 申请详情请求参数
 */
export interface ApplicationDetailRequest {
  applicationId: number
}

/**
 * 审核申请请求参数
 */
export interface ReviewApplicationRequest {
  applicationId: number
  reviewTeacherId: number
  applicationStatus: number
  reviewRemark?: string
}

export interface ApplicationOptions {
  applicationStatusOptions: OptionItem[]
}

/**
 * AI评估结果VO
 */
export interface AiEvaluationResult {
  /**
   * 是否推荐
   */
  isRecommended: string

  /**
   * 原因列表
   */
  reason: string[]

  /**
   * 匹配分数
   */
  matchScore: number

  /**
   * 改进建议
   */
  improvementSuggestions: string[]
}

export type ApplicationPageForTeacherResponse = ApiResponseData<ApplicationPageForTeacher>
export type ApplicationOptionsResponse = ApiResponseData<ApplicationOptions>
export type ApplicationDetailResponse = ApiResponseData<ApplicationDetailForTeacher>
export type ReviewApplicationResponseWrapper = ApiResponseData<boolean>
export type AiEvaluationResponse = ApiResponseData<AiEvaluationResult>
